package com.china08.yxyapi.entity.mg.scoreport.report;

import java.util.List;

import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.DBRef;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;

import com.china08.yxyapi.entity.mg.MongoBaseEntityNoId;
import com.china08.yxyapi.entity.mg.scoreport.Exam;

/**
 * @author Richard.Wang 考试--小题分析</br>
 *         每个班级考试的每一道题存储为一条数据.
 * 
 */
@SuppressWarnings("serial")
@Document(collection = "yxy.tea.score.report.exam.ques.analyse")
public class ExamQuesAnalyse extends MongoBaseEntityNoId {

    /** 主键 , 使用 Exam表中的Id + 题的orderNum 组合为主键 */
    @Id
    private String id;

    /** */
    @DBRef(lazy = true)
    private Exam exam;

    @Field(value = "section")
    private Integer section;// 大题号

    @Field(value = "section_name")
    private String sectionName;// 大题号名称

    @Field(value = "no")
    private Integer no;// 小题号

    @Field(value = "no_name")
    private String noName;// 小题名称

    @Field(value = "order_num")
    private Integer orderNum;// 序列号

    @Field(value = "score")
    private Integer score;// 分数

    @Field(value = "right_rate")
    private Double rightRate;// 正确率

    @Field(value = "difficulty_level")
    private Double difficultyLevel;// 难度值

    @Field(value = "wave_level")
    private Double waveLevel;// 波动度

    @Field(value = "student_score")
    private List<StudentScore> studentScore;// 本班级学生,本道题得分. 进行排序存储

    @Field(value = "remark")
    private String remark; // 详细分析

    @Field(value = "knows")
    private List<String> knows;// 本试题设计的知识点, 存储为中文名

    @Field(value = "book_contents")
    private List<String> bookContents;// 本试题涉及的章节,存储为中文名
    
    @Field(value = "accept")
    private Integer accept;//是否采纳    0:不采纳    1:采纳
    /**
     * 知识点分析评论
     */
    @Field(value = "know_remark")
    private String knowRemark;

    /**
     * 资源推荐
     */
    @Field(value = "recommend")
    private List<Res> recommend;

    public class Res {
        public String id;// 资源id
        public String title;// 资源名称
        public String extension;// 资源类型 doc,excel...
        public String location;// 资源路径
    }

    public class StudentScore {
        public String stu_id;// 学生Id
        public String stu_nick;// 学生名称
        public Double score;// 学生分数
    }

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id;
    }

    public Exam getExam() {
        return exam;
    }

    public void setExam(Exam exam) {
        this.exam = exam;
    }

    public Integer getSection() {
        return section;
    }

    public void setSection(Integer section) {
        this.section = section;
    }

    public Integer getNo() {
        return no;
    }

    public void setNo(Integer no) {
        this.no = no;
    }

    public Integer getOrderNum() {
        return orderNum;
    }

    public void setOrderNum(Integer orderNum) {
        this.orderNum = orderNum;
    }

    public Integer getScore() {
        return score;
    }

    public void setScore(Integer score) {
        this.score = score;
    }

    public String getSectionName() {
        return sectionName;
    }

    public void setSectionName(String sectionName) {
        this.sectionName = sectionName;
    }

    public String getNoName() {
        return noName;
    }

    public void setNoName(String noName) {
        this.noName = noName;
    }

    public Double getRightRate() {
        return rightRate;
    }

    public void setRightRate(Double rightRate) {
        this.rightRate = rightRate;
    }

    public Double getDifficultyLevel() {
        return difficultyLevel;
    }

    public void setDifficultyLevel(Double difficultyLevel) {
        this.difficultyLevel = difficultyLevel;
    }

    public Double getWaveLevel() {
        return waveLevel;
    }

    public void setWaveLevel(Double waveLevel) {
        this.waveLevel = waveLevel;
    }

    public List<StudentScore> getStudentScore() {
        return studentScore;
    }

    public void setStudentScore(List<StudentScore> studentScore) {
        this.studentScore = studentScore;
    }

    public String getRemark() {
        return remark;
    }

    public void setRemark(String remark) {
        this.remark = remark;
    }

    public List<String> getKnows() {
        return knows;
    }

    public void setKnows(List<String> knows) {
        this.knows = knows;
    }

    public List<String> getBookContents() {
        return bookContents;
    }

    public void setBookContents(List<String> bookContents) {
        this.bookContents = bookContents;
    }

    public String getKnowRemark() {
        return knowRemark;
    }

    public void setKnowRemark(String knowRemark) {
        this.knowRemark = knowRemark;
    }

    public List<Res> getRecommend() {
        return recommend;
    }

    public void setRecommend(List<Res> recommend) {
        this.recommend = recommend;
    }

	public Integer getAccept() {
		return accept;
	}

	public void setAccept(Integer accept) {
		this.accept = accept;
	}

}
